package com.njitzx.mapper;

import com.njitzx.entity.dto.UpdateUserVO;
import com.njitzx.entity.po.User;

import java.io.Serializable;
import java.util.List;

import com.njitzx.entity.vo.UserInfoVO;
import com.njitzx.entity.vo.UserQueryDTO;
import com.njitzx.entity.vo.UserVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

/**
 * <p>
 * 用户表 Mapper 接口
 * </p>
 *
 * @author 周鑫
 * @since 2024-08-20
 */
@Mapper
public interface UserMapper {

    List<UserQueryDTO> select(UserVO user);

     UserQueryDTO selectById(Serializable id);

    void insert(User user);

    void update(User user);

    void deleteById(Serializable id);

    void deleteByIds(String[] split);

    //WOCO 666
    @Update("update sp_user set mg_state=#{state} where id=#{id}")
    void updateStatus(@Param("id") Integer id, @Param("state") Integer state);

    @Update("update sp_user set role_id=#{roleId} where id=#{id}")
    void updateUserRoleId(@Param("roleId") Integer roleId, @Param("id") Integer id);

    List<User> getUsrByRoleId(Serializable roleId);

    UserInfoVO getUserInfo(Integer id);

    void updatePassWord(@Param("id") Integer id,@Param("newPassword") String newPassword);

    void updateInfo(@Param("id") Integer id, @Param("user") UpdateUserVO updateUserVO);
}
